package 双指针;

/**
 * @author admin
 * @version 1.0.0
 * @ClassName 分割链表.java
 * @Description TODO
 * @createTime 2020年10月17日 10:17:00
 * 给定一个链表和一个特定值 x，对链表进行分隔，使得所有小于 x 的节点都在大于或等于 x 的节点之前。
 *
 * 你应当保留两个分区中每个节点的初始相对位置。
 *
 *  
 *
 * 示例:
 *
 * 输入: head = 1->4->3->2->5->2, x = 3
 * 输出: 1->2->2->4->3->5
 *
 * 思路很简单 就是分成两个链表然后分别添加
 * 注意max1.next=null;非常重要
 * 两个链表拼接的时候不止要看头结点  尾结点赋值null也很重要
 * 否则调试会出现Error - Found cycle in the ListNode
 */
public class 分割链表 {
//    public ListNode partition(ListNode head, int x) {
//        ListNode min=new ListNode(0);
//        ListNode min1=min;
//        ListNode max=new ListNode(0);
//        ListNode max1=max;
//        while(head!=null){
//            if(head.val<x){
//                min1.next=head;
//                min1=min1.next;
//            }else{
//                max1.next=head;
//                max1=max1.next;
//            }
//
//            head=head.next;
//        }
//        max1.next=null;
//        min1.next=max.next;
//        return min.next;
//
//
//    }
}
